
namespace GIMachineGenerator
{
    enum SymbolConstants : int
    {
        /// <c> (EOF) </c>
        SYMBOL_EOF = 0,
        /// <c> (Error) </c>
        SYMBOL_ERROR = 1,
        /// <c> (Whitespace) </c>
        SYMBOL_WHITESPACE = 2,
        /// <c> CloseBrac </c>
        SYMBOL_CLOSEBRAC = 3,
        /// <c> Doller </c>
        SYMBOL_DOLLER = 4,
        /// <c> EqualTo </c>
        SYMBOL_EQUALTO = 5,
        /// <c> GreaterThan </c>
        SYMBOL_GREATERTHAN = 6,
        /// <c> Identifier </c>
        SYMBOL_IDENTIFIER = 7,
        /// <c> LessThan </c>
        SYMBOL_LESSTHAN = 8,
        /// <c> OpenBrac </c>
        SYMBOL_OPENBRAC = 9,
        /// <c> OptionalOperator </c>
        SYMBOL_OPTIONALOPERATOR = 10,
        /// <c> OrOperator </c>
        SYMBOL_OROPERATOR = 11,
        /// <c> PublicOperator </c>
        SYMBOL_PUBLICOPERATOR = 12,
        /// <c> SemiColon </c>
        SYMBOL_SEMICOLON = 13,
        /// <c> StringLiteral </c>
        SYMBOL_STRINGLITERAL = 14,
        /// <c> &lt;CaptureName&gt; </c>
        SYMBOL_CAPTURENAME = 15,
        /// <c> &lt;Pattern&gt; </c>
        SYMBOL_PATTERN = 16,
        /// <c> &lt;PatternName&gt; </c>
        SYMBOL_PATTERNNAME = 17,
        /// <c> &lt;PatternReference&gt; </c>
        SYMBOL_PATTERNREFERENCE = 18,
        /// <c> &lt;PrivateStatement&gt; </c>
        SYMBOL_PRIVATESTATEMENT = 19,
        /// <c> &lt;Program&gt; </c>
        SYMBOL_PROGRAM = 20,
        /// <c> &lt;PublicStatement&gt; </c>
        SYMBOL_PUBLICSTATEMENT = 21,
        /// <c> &lt;RegexString&gt; </c>
        SYMBOL_REGEXSTRING = 22,
        /// <c> &lt;SimpleAssignment&gt; </c>
        SYMBOL_SIMPLEASSIGNMENT = 23,
        /// <c> &lt;SimpleAssignmentPattern&gt; </c>
        SYMBOL_SIMPLEASSIGNMENTPATTERN = 24,
        /// <c> &lt;Statement&gt; </c>
        SYMBOL_STATEMENT = 25,
        /// <c> &lt;Statements&gt; </c>
        SYMBOL_STATEMENTS = 26,
        /// <c> &lt;Word&gt; </c>
        SYMBOL_WORD = 27
    };

    enum RuleConstants : int
    {
        /// <c> &lt;Program&gt; ::= &lt;Statements&gt; </c>
        RULE_PROGRAM = 0,
        /// <c> &lt;Statements&gt; ::=  </c>
        RULE_STATEMENTS = 1,
        /// <c> &lt;Statements&gt; ::= &lt;Statement&gt; SemiColon &lt;Statements&gt; </c>
        RULE_STATEMENTS_SEMICOLON = 2,
        /// <c> &lt;Statement&gt; ::= &lt;PrivateStatement&gt; </c>
        RULE_STATEMENT = 3,
        /// <c> &lt;Statement&gt; ::= &lt;PublicStatement&gt; </c>
        RULE_STATEMENT2 = 4,
        /// <c> &lt;PrivateStatement&gt; ::= &lt;PatternName&gt; EqualTo &lt;Pattern&gt; </c>
        RULE_PRIVATESTATEMENT_EQUALTO = 5,
        /// <c> &lt;PrivateStatement&gt; ::= &lt;SimpleAssignment&gt; </c>
        RULE_PRIVATESTATEMENT = 6,
        /// <c> &lt;PublicStatement&gt; ::= PublicOperator &lt;PatternName&gt; EqualTo &lt;Pattern&gt; </c>
        RULE_PUBLICSTATEMENT_PUBLICOPERATOR_EQUALTO = 7,
        /// <c> &lt;PublicStatement&gt; ::= PublicOperator &lt;SimpleAssignment&gt; </c>
        RULE_PUBLICSTATEMENT_PUBLICOPERATOR = 8,
        /// <c> &lt;SimpleAssignment&gt; ::= &lt;PatternName&gt; EqualTo &lt;SimpleAssignmentPattern&gt; </c>
        RULE_SIMPLEASSIGNMENT_EQUALTO = 9,
        /// <c> &lt;SimpleAssignmentPattern&gt; ::= StringLiteral </c>
        RULE_SIMPLEASSIGNMENTPATTERN_STRINGLITERAL = 10,
        /// <c> &lt;PatternName&gt; ::= Identifier </c>
        RULE_PATTERNNAME_IDENTIFIER = 11,
        /// <c> &lt;Pattern&gt; ::= &lt;Word&gt; </c>
        RULE_PATTERN = 12,
        /// <c> &lt;Pattern&gt; ::= &lt;RegexString&gt; </c>
        RULE_PATTERN2 = 13,
        /// <c> &lt;Pattern&gt; ::= &lt;PatternReference&gt; </c>
        RULE_PATTERN3 = 14,
        /// <c> &lt;Pattern&gt; ::= &lt;Pattern&gt; &lt;Pattern&gt; </c>
        RULE_PATTERN4 = 15,
        /// <c> &lt;Pattern&gt; ::= OpenBrac &lt;Pattern&gt; CloseBrac </c>
        RULE_PATTERN_OPENBRAC_CLOSEBRAC = 16,
        /// <c> &lt;Pattern&gt; ::= &lt;Pattern&gt; OrOperator &lt;Pattern&gt; </c>
        RULE_PATTERN_OROPERATOR = 17,
        /// <c> &lt;Pattern&gt; ::= &lt;Pattern&gt; OptionalOperator </c>
        RULE_PATTERN_OPTIONALOPERATOR = 18,
        /// <c> &lt;Word&gt; ::= Identifier </c>
        RULE_WORD_IDENTIFIER = 19,
        /// <c> &lt;RegexString&gt; ::= StringLiteral LessThan &lt;CaptureName&gt; GreaterThan </c>
        RULE_REGEXSTRING_STRINGLITERAL_LESSTHAN_GREATERTHAN = 20,
        /// <c> &lt;PatternReference&gt; ::= Doller Identifier LessThan &lt;CaptureName&gt; GreaterThan </c>
        RULE_PATTERNREFERENCE_DOLLER_IDENTIFIER_LESSTHAN_GREATERTHAN = 21,
        /// <c> &lt;CaptureName&gt; ::= Identifier </c>
        RULE_CAPTURENAME_IDENTIFIER = 22
    };
}